// Package convert 提供了一组转换函数，用于将uint32类型的值转换为其他类型。
package convert

import (
	"errors"
	"math"
	"strconv"
)

// Uint32ToInt 将uint32类型的值转换为int类型，不进行溢出检查。
func Uint32ToInt(value uint32) (int, error) {
	return int(value), nil
}

// Uint32ToInt8 将uint32类型的值转换为int8类型，如果超出int8范围则返回错误。
func Uint32ToInt8(value uint32) (int8, error) {
	if value > math.MaxInt8 {
		return 0, errors.New("overflow occurred during conversion")
	}
	return int8(value), nil
}

// Uint32ToInt16 将uint32类型的值转换为int16类型，如果超出int16范围则返回错误。
func Uint32ToInt16(value uint32) (int16, error) {
	if value > math.MaxInt16 {
		return 0, errors.New("overflow occurred during conversion")
	}
	return int16(value), nil
}

// Uint32ToInt32 将uint32类型的值转换为int32类型，如果超出int32范围则返回错误。
func Uint32ToInt32(value uint32) (int32, error) {
	if value > math.MaxInt32 {
		return 0, errors.New("overflow occurred during conversion")
	}
	return int32(value), nil
}

// Uint32ToInt64 将uint32类型的值转换为int64类型，不进行溢出检查。
func Uint32ToInt64(value uint32) (int64, error) {
	return int64(value), nil
}

// Uint32ToUint 将uint32类型的值转换为uint类型，不进行溢出检查。
func Uint32ToUint(value uint32) (uint, error) {
	return uint(value), nil
}

// Uint32ToUint8 将uint32类型的值转换为uint8类型，如果超出uint8范围则返回错误。
func Uint32ToUint8(value uint32) (uint8, error) {
	if value > math.MaxUint8 {
		return 0, errors.New("overflow occurred during conversion")
	}
	return uint8(value), nil
}

// Uint32ToUint16 将uint32类型的值转换为uint16类型，如果超出uint16范围则返回错误。
func Uint32ToUint16(value uint32) (uint16, error) {
	if value > math.MaxUint16 {
		return 0, errors.New("overflow occurred during conversion")
	}
	return uint16(value), nil
}

// Uint32ToUint64 将uint32类型的值转换为uint64类型，不进行溢出检查。
func Uint32ToUint64(value uint32) (uint64, error) {
	return uint64(value), nil
}

// Uint32ToFloat32 将uint32类型的值转换为float32类型，不进行溢出检查。
func Uint32ToFloat32(value uint32) (float32, error) {
	return float32(value), nil
}

// Uint32ToFloat64 将uint32类型的值转换为float64类型，不进行溢出检查。
func Uint32ToFloat64(value uint32) (float64, error) {
	return float64(value), nil
}

// Uint32ToString 将uint32类型的值转换为字符串类型。
func Uint32ToString(value uint32) string {
	return strconv.FormatUint(uint64(value), 10)
}

// Uint32ToBool 将uint32类型的值转换为bool类型，非零值转换为true，零值转换为false。
func Uint32ToBool(value uint32) bool {
	return value != 0
}
